package com.mine.yyb.common.utils.spring;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
 * 
 * <pre>
 * <一句话功能简述>
 * 读取配置文件的实现类，通过该类可以实现读取配置参数
 * 
 * <功能详细描述>
 *</pre>
 * 
 * @author  xiongwei
 * @version  [版本号, 2014年8月13日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class MineSpringPropertyConfigurer extends PropertyPlaceholderConfigurer
{
    /**缓存参数*/
    private static Map<String, Object> ctxPropertiesMap = new HashMap<String, Object>();;
    
    /**
     * 
     * 重载方法
     * 加载参数
     * @param beanFactoryToProcess
     * @param props
     * @throws BeansException
     */
    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
        throws BeansException
    {
        super.processProperties(beanFactoryToProcess, props);
        
        for (Object key : props.keySet())
        {
            String keyStr = key.toString();
            String value = props.getProperty(keyStr);
            
            ctxPropertiesMap.put(keyStr, value);
        }
    }
    
    /**
     * 
     * <pre>
     * <一句话功能简述>
     * 通过key获取属性
     * 
     * <功能详细描述>
     *</pre>
     * @param name
     * @return
     * @see [类、类#方法、类#成员]
     */
    public static Object getProperty(String name)
    {
        return ctxPropertiesMap.get(name);
    }
}
